home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
MPW_TOOL
/
TOOLS
/
TOOLS_WI
/
ICON_8
/
ICONX_FO
/
RDEFAULT.C
< prev
next >
Wrap
Text File
|
1990-03-02
|
2KB
|
113 lines
/*
* File: rdefault.c
* Contents: defcset, deffile, defint, defshort, defstr
*/
#include "::h:config.h"
#include "::h:rt.h"
#include "rproto.h"
/*
* defcset(dp,cp,buf,def) - if dp is null, default to def;
* otherwise, convert to cset or die trying.
*/
int defcset(dp, cp, buf, def)
dptr dp;
int **cp;
int *buf, *def;
{
if (ChkNull(*dp)) {
*cp = def;
return Defaulted;
}
if (cvcset(dp, cp, buf) == CvtFail)
RetError(104, *dp);
return Success;
}
/*
* deffile - if dp is null, default to def; otherwise, make sure it's a file.
*/
int deffile(dp, def)
dptr dp, def;
{
if (ChkNull(*dp)) {
*dp = *def;
return Defaulted;
}
if (dp->dword != D_File)
RetError(105, *dp);
return Success;
}
/*
* defint - if dp is null, default to def; otherwise, convert to integer.
* Note that *lp gets the value.
*/
int defint(dp, lp, def)
dptr dp;
long *lp;
word def;
{
if (ChkNull(*dp)) {
*lp = (long)def;
return Defaulted;
}
if (cvint(dp) == CvtFail)
RetError(101, *dp);
*lp = IntVal(*dp);
return Success;
}
/*
* defshort - if dp is null, default to def; otherwise, convert to short
* integer. The result is an integer value in *dp.
*/
int defshort(dp, def)
dptr dp;
int def;
{
if (ChkNull(*dp)) {
MakeInt((int)def, dp);
return Defaulted;
}
switch (cvint(dp)) {
case T_Integer:
return Success;
default:
RetError(101, *dp);
}
}
/*
* defstr - if dp is null, default to def; otherwise, convert to string.
* *dp gets a descriptor for the resulting string. buf is used as
* a scratch buffer for the conversion (if necessary).
*/
int defstr(dp, buf, def)
dptr dp;
char *buf;
dptr def;
{
int retcode;
if (ChkNull(*dp)) {
*dp = *def;
return Defaulted;
}
retcode = cvstr(dp, buf);
if (retcode == CvtFail) {
RetError(103, *dp);
}
else
return retcode;
}